﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Domain.Dto;
using Domain.Dto.User;
using Domain.Model;
using Gmmy.DomainExtension;
using Infrastructure.Common.Enums;
using Surging.Core.CPlatform.Ioc;

namespace Domain.Interface
{
    public interface IUserDomainService : IServiceKey
    {
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="loginName"></param>
        /// <param name="password"></param>
        /// <param name="randomKey"></param>
        /// <param name="loginInfo"></param>
        /// <returns></returns>
        Task<LoginInfoDto> LoginAccount(string loginName, string password,string randomKey, RequestInfo loginInfo);

        /// <summary>
        /// 修改登陆者基本信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<LoginInfoDto> ChangeUserInfo(UpdateUserInput input);

        /// <summary>
        /// 创建新用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task CreateUserInfo(UpdateUserInput input);

        /// <summary>
        /// 变更用户状态
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<EnumUserState> ChangeUserState(GetInput input);
    }
}
